#!/usr/bin/env python

import utiles
import servers
import MySQLdb
import MySQLdb.cursors
from decimal import Decimal

host=servers.host
user=servers.user
passwd=servers.passwd
db_name=servers.db_name

miBD=MySQLdb.connect(host=host,user=user,passwd=passwd,db=db_name)
miCursor=miBD.cursor()
miBDDict=MySQLdb.connect(host=host,user=user,passwd=passwd,db=db_name, cursorclass=MySQLdb.cursors.DictCursor)
miCursorDict=miBDDict.cursor()


def ordenCruda(consultaSQL):
    miCursor.execute(consultaSQL)
    auxiliar = miCursor.fetchall()
    return auxiliar

def ordenCrudaDict(consultaSQL, previo="SELECT 1"):
    miCursorDict.execute(previo)
    miCursorDict.execute(consultaSQL)
    auxiliar = miCursorDict.fetchall()    
    return auxiliar

def getListaIdVentas():
    
    tabla = "ventas"
    campos = "idventa"
    consultaSQL = "SELECT %s FROM %s" % (campos,tabla)
    listaIdVentas = ordenCruda(consultaSQL)
    lista = []
    print "Convirtiendo lista de 'idventa' leida de la tabla 'ventas'"
    for idVentas in listaIdVentas:
        lista.append(idVentas[0])
    return lista

def armaRegistro(idventa, nro):
    decimales = Decimal('0.01')
    fechaActual = utiles.getfechaInverse()
    nroSucursal = utiles.getSucursalActiva()
    
    tabla = "ventas"
    campos = "*"
    consultaSQL = "SELECT %s FROM %s WHERE idventa = '%s'" % (campos,tabla,idventa)
    datosVentas = ordenCrudaDict(consultaSQL)

    idcliente = datosVentas[0]['idcliente']

    tabla = "cliente"
    campos = "nombre,direccion,localidad,telefono"
    consultaSQL = "SELECT %s FROM %s WHERE idcliente = '%s'" % (campos,tabla,idcliente)
    datosCliente = ordenCrudaDict(consultaSQL)

    nombre = datosCliente[0]['nombre']
    direccion = datosCliente[0]['direccion']
    localidad = datosCliente[0]['localidad']
    telefono = datosCliente[0]['telefono']

    print "*"*40
    print idcliente,nombre
    print direccion,localidad,telefono
    print "*"*40

    tabla = "ventastienepagos"
    campos = "*"
    consultaSQL = "SELECT %s FROM %s WHERE idventa = '%s'" % (campos,tabla,idventa)
    datosVentasTienePagos = ordenCrudaDict(consultaSQL)

    tabla = "vtas_ctasctes"
    campos = "*"
    consultaSQL = "SELECT %s FROM %s WHERE idventa = '%s'" % (campos,tabla,idventa)
    datosVtas_CtasCtes = ordenCrudaDict(consultaSQL)
    
    tabla = "vtas_ctasctestienepagos"
    campos = "*"
    consultaSQL = "SELECT %s FROM %s WHERE idventa = '%s'" % (campos,tabla,idventa)
    datosVtas_CtasCtesTienePagos = ordenCrudaDict(consultaSQL)


def procesarListaIdVentas(listaID):
    registros_procesados = 1
    for idventa in listaID:
        armaRegistro(idventa,registros_procesados)
        registros_procesados += 1
        if registros_procesados == 10: break

if __name__ == '__main__':
    listaId = getListaIdVentas()
    procesarListaIdVentas(listaId)

    miCursor.close()
    miBD.close()
